const fs = require("fs")
const http = require("http")
const app = http.createServer((req,res)=>{
    /**
     * 实现post接口 -- 新增书籍
     *  请求路径：/addBook
     *  请求方式：post
     *  请求参数：
     *      必传： name: 书籍名称
     *             author：作者
     * 
    */
   let url = req.url
   let method = req.method
   res.setHeader("content-type","text/html;charset=utf8")
    // if(前端发起的请求路径 === "/addBook" && 前端发起的请求方式 === "POST"){
    if(url === "/addBook" && method === "POST"){
        // 正确的请求
        // 通过data事件  接收收据 并用变量保存起来
        let result = ""
        req.on("data", (chunk)=>{
            result+=chunk
        } )
        // 接收完成会触发end事件
        req.on("end",()=>{
            console.log(24,"接收的数据",result);
            // 解析数据
            let query = new URLSearchParams(result);
            // console.log(27,query);
            let name = query.get("name")
            let author = query.get("author")
            if(name==""||author==""){
                // 参数不能为空
                return res.end("参数不能为空！")
            }
            // 参数存在 新增数据
            let data = fs.readFileSync('./db/books.json',"utf8")
            let dataArr = JSON.parse(data);
            // 把新增的数据 通过push方法添加到数组中即可
            dataArr.push({
                name,
                author
            })
            fs.writeFileSync('./db/books.json',JSON.stringify(dataArr))
        })

        res.end("ok")
    }else{
        // 错误的请求
        res.end("notfound")
    }
    
})
app.listen(3000,()=>{
 console.log("服务器启动成功：http://127.0.0.1:3000");
})